1. Field of the Invention
The present invention generally relates to computer systems and networks, and more particularly, to a virtual tunnel router module for use in a virtual computer network.
2. Description of the Related Art
General purpose computer systems are usually equipped with a operating system (OS) that is responsible for managing and controlling the systems' resources. In particular, OS software is typically configured to manage memory, control access to peripheral devices, execute software applications, create network connections, etc. However, at any instance, computer systems function with a single operating system so, for the most part, software applications associated with different operating systems cannot be concurrently executed on one computer system.
Given the need for enterprise-level networks to function and manage numerous resources and, sometimes disparate, applications, recent trends have developed towards virtualization technologies. Virtualization technologies include software that creates a virtual machine on a host computer in which each virtual machine instance can execute its own virtual or guest operating system. In turn, virtual operating systems enable diverse applications to run in isolated environments on a shared hardware platform. Virtual operating systems comprise a software layer that runs on a host computer platform and provides an abstraction of a complete computer system to higher-level software. In this manner, multiple virtual machines, with or without heterogeneous operating systems, are capable of running in isolation, side-by-side, on the same physical machine. In addition, each virtual machine has its own set of virtual hardware (e.g., RAM, CPU, NIC, etc.) upon which an operating system and applications are loaded. The operating system sees a consistent, normalized set of hardware regardless of the actual physical hardware components.
Virtual machine platforms, such as, for example, VMware, Inc. XEN, Microsoft Virtualization Server, Solaris Virtualization, and AIX virtualization, run on computers and include a common base portion and separate user portions, all of which run on a physical computer. The virtual machine (or guest) is configured in the separate user portions as a logical partition of physical resources of the computer. A guest operating system runs on each virtual machine, and the virtual machine appears to the guest operating system as a real computer. Many applications can run on each guest operating system and its virtual machine. Applications running on different virtual machines can communicate with each other through the common base portion.
With this said, virtual machine platforms are subject to certain limitations. For example, virtualization platforms are frequently used for deploying multiple sessions (i.e., clones) of software applications throughout a network. As indicated above, software applications typically run on a specific operating system thereby requiring a specific set of resources, such as, for example, supporting libraries, databases, management software, and software providing business functionality. However, while it may be easy to “clone” a software system in such virtualization systems, it is usually not possible to have “clones” participate on the same network due to identification and network addressing issues.
Other limitations of virtual machine operating systems arise in the sharing and exchange of virtual machine (guest) image content within and across networks. That is, networked computers typically contain less than 1 GB of memory, so performance begins to degrade as the number of guest images running on a physical machine increases. And, CPU-intensive guest images may further limit the number of guest sessions that run on a single physical machine. Also, for certain network configurations, splitting the guest images load by distributing and running copies of guest images across multiple host computers may vitiate the anonymity of the host computers and compromise security.